/**
 * XSAN SPDK兼容性函数实现
 */

#include "include/xsan_spdk_compat.h"
#include <string.h>
#include <stdbool.h>

// 前向声明
struct spdk_bdev;
const char *spdk_bdev_get_product_name(struct spdk_bdev *bdev);

/**
 * SPDK错误描述字符串
 */
const char *spdk_strerror(int err) {
    return strerror(-err);
}

/**
 * 检查SPDK块设备是否为旋转设备
 * 注意：这是一个简单的实现，假设所有NVMe设备都是非旋转的，其他设备都是旋转的
 */
bool spdk_bdev_is_rotational(struct spdk_bdev *bdev) {
    if (!bdev) {
        return false;
    }
    
    // 简单实现：检查产品名称是否包含"NVMe"，如果是则认为是非旋转设备
    const char *product_name = spdk_bdev_get_product_name(bdev);
    if (product_name && strstr(product_name, "NVMe") != NULL) {
        return false;
    }
    
    // 默认假设是旋转设备
    return true;
} 